import java.util.HashMap;
import java.util.Map;

public class ResumeParser {
	public static void main(String[] args) {
		// 示例简历字符串（实际应用中可从文件或输入流读取）
		String resume = "姓名:张三;出生日期:1995-03-12;个人网站:https://zhangsan.github.io;身高:182cm;体重:73kg;学历:本科;";

		// 解析简历信息到Map中
		Map<String, String> resumeInfo = parseResume(resume);

		// 1. 判断姓名是否姓"张"
		checkLastNameZhang(resumeInfo);

		// 2. 输出出生日期和个人网站
		printBirthDateAndWebsite(resumeInfo);

		// 3. 判断身高是否大于180cm
		checkHeight(resumeInfo);

		// 4. 判断体重是否小于75kg
		checkWeight(resumeInfo);
	}

	/**
	 * 解析简历字符串为键值对Map
	 * @param resume 简历字符串
	 * @return 包含简历信息的Map
	 */
	private static Map<String, String> parseResume(String resume) {
		Map<String, String> infoMap = new HashMap<>();
		// 按分号分割字段（处理可能的空字符串）
		String[] fields = resume.split(";");
		for (String field : fields) {
			field = field.trim();
			if (field.isEmpty()) continue;
			// 按冒号分割键和值（限制分割为2部分，避免值中包含冒号）
			String[] keyValue = field.split(":", 2);
			if (keyValue.length == 2) {
				String key = keyValue[0].trim();
				String value = keyValue[1].trim();
				infoMap.put(key, value);
			}
		}
		return infoMap;
	}

	/**
	 * 判断姓名是否姓"张"
	 * @param infoMap 简历信息Map
	 */
	private static void checkLastNameZhang(Map<String, String> infoMap) {
		String name = infoMap.get("姓名");
		if (name == null || name.isEmpty()) {
			System.out.println("未找到姓名信息");
			return;
		}
		if (name.startsWith("张")) {
			System.out.println("姓名姓'张'");
		} else {
			System.out.println("姓名不姓'张'");
		}
	}

	/**
	 * 输出出生日期和个人网站
	 * @param infoMap 简历信息Map
	 */
	private static void printBirthDateAndWebsite(Map<String, String> infoMap) {
		String birthDate = infoMap.getOrDefault("出生日期", "未填写");
		String website = infoMap.getOrDefault("个人网站", "未填写");
		System.out.println("出生日期: " + birthDate);
		System.out.println("个人网站: " + website);
	}

	/**
	 * 判断身高是否大于180cm
	 * @param infoMap 简历信息Map
	 */
	private static void checkHeight(Map<String, String> infoMap) {
		String heightStr = infoMap.get("身高");
		if (heightStr == null || !heightStr.endsWith("cm")) {
			System.out.println("未找到有效的身高信息（格式应为XXXcm）");
			return;
		}
		try {
			// 提取数字部分并转换为整数
			int height = Integer.parseInt(heightStr.substring(0, heightStr.length() - 2));
			if (height > 180) {
				System.out.println("身高大于180cm");
			} else {
				System.out.println("身高不大于180cm");
			}
		} catch (NumberFormatException e) {
			System.out.println("身高格式错误（数字部分无效）");
		}
	}

	/**
	 * 判断体重是否小于75kg
	 * @param infoMap 简历信息Map
	 */
	private static void checkWeight(Map<String, String> infoMap) {
		String weightStr = infoMap.get("体重");
		if (weightStr == null || !weightStr.endsWith("kg")) {
			System.out.println("未找到有效的体重信息（格式应为XXXkg）");
			return;
		}
		try {
			// 提取数字部分并转换为浮点数（支持小数体重）
			double weight = Double.parseDouble(weightStr.substring(0, weightStr.length() - 2));
			if (weight < 75) {
				System.out.println("体重小于75kg");
			} else {
				System.out.println("体重不小于75kg");
			}
		} catch (NumberFormatException e) {
			System.out.println("体重格式错误（数字部分无效）");
		}
	}
}